#!/usr/bin/python3
# -*- coding: utf-8 -*-

# @Time    : 2018/11/7 10:45
# @Author  : chester7cheng
# @Email   : 346835646@qq.com
# @File    : Generation.py
# @Software: PyCharm


L = [x * x for x in range(10)]
print(L)

g = (x * x for x in range(10))

print(next(g))
print(next(g))
for n in g:
    print(n)


def fib(max_limit):
    index, a, b = 0, 0, 1
    while index < max_limit:
        yield b
        a, b = b, a + b
        index += 1


fib = fib(10)

for item in fib:
    print(item)


def yanghui_triangle(end):
    result = []
    for i in range(1, end):
        tmp = []
        for j in range(i):
            if j == 0 or j == i - 1:
                tmp.insert(j, 1)
            else:
                tmp.insert(j, result[i - 2][j - 1] + result[i - 2][j])
        result.append(tmp)

    return result


r = yanghui_triangle(11)
for item in r:
    print(item)

results = yanghui_triangle(11)
if results == [
    [1],
    [1, 1],
    [1, 2, 1],
    [1, 3, 3, 1],
    [1, 4, 6, 4, 1],
    [1, 5, 10, 10, 5, 1],
    [1, 6, 15, 20, 15, 6, 1],
    [1, 7, 21, 35, 35, 21, 7, 1],
    [1, 8, 28, 56, 70, 56, 28, 8, 1],
    [1, 9, 36, 84, 126, 126, 84, 36, 9, 1]
]:
    print('测试通过!')
else:
    print('测试失败!')
